package com.gcxx.goods.st.dao;

import java.util.List;
import java.util.Map;

import com.gcxx.framework.base.entity.PageBean;
import  com.gcxx.goods.st.entity.GoodsStOrgStockSet;

/**
 * <strong>Title : IGoodsStOrgStockSetDAO<br></strong>
 * <strong>Description : </strong>IGoodsStOrgStockSetDAO接口类<br> 
 * <strong>Create on : 2015-06-09<br></strong>
 * <p>
 * <strong>Copyright (C) 天津共创鑫星科技有限公司_智能链管理系统<br></strong>
 * <p>
 * @author guoyi<br>
 * @version <strong>1.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人		修改日期		修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface IGoodsStOrgStockSetDAO {
	
	/**
	 * 保存对象数据
	 * 
	 * @param goodsStOrgStockSet
	 *            - 对象
	 */
	public void save(GoodsStOrgStockSet goodsStOrgStockSet);

	/**
	 * 根据ID集合删除数据
	 * 
	 * @param idList
	 *            - 主键集合
	 */
	public void delete(List<String> idList);

	/**
	 * 根据主键查询
	 * 
	 * @param id
	 *            - 主键
	 * @return 对象
	 */
	public GoodsStOrgStockSet findById(String id);

	/**
	 * 根据对象部分的属性查询
	 * 
	 * @param goodsStOrgStockSet
	 *            - 对象
	 * @return 对象集合
	 */
	public List<GoodsStOrgStockSet> findByExample(GoodsStOrgStockSet goodsStOrgStockSet);

	/**
	 * 根据对象的一个属性查询
	 * 
	 * @param propertyName
	 *            - 属性名称
	 * @param value
	 *            - 属性值
	 * @return 对象集合
	 */
	public List<GoodsStOrgStockSet> findByProperty(String propertyName, Object value);

	/**
	 * 查询所有数据
	 * 
	 * @return 对象集合
	 */
	public List<GoodsStOrgStockSet> findAll();

	/**
	 * 根据ID进行实体更新
	 * 
	 * @param map
	 *            - 对象
	 * @return 对象
	 */
	public void update(Map<String, Object> map);

	/**
	 * 将传入的对象持久化并保存。 如果对象未保存（Transient状态），调用save方法保存。
	 * 如果对象已保存（Detached状态），调用update方法将对象与Session重新关联。
	 * 
	 * @param goodsStOrgStockSet
	 *            - 对象
	 */
	public void attachDirty(GoodsStOrgStockSet goodsStOrgStockSet);

	/**
	 * 将传入的对象状态设置为Transient状态
	 * 
	 * @param goodsStOrgStockSet
	 *            - 对象
	 */
	public void attachClean(GoodsStOrgStockSet goodsStOrgStockSet);
	
	/**
	 * 根据条件分页查询实体信息集合
	 * @param page - 分页信息
	 * @return 分页信息
	 */
	public PageBean findByCondition(PageBean page);
	
	/**
	 * 根据条件判断物资库库存设置中是否存在某物资
	 * @param condition---包含hospitalNo（医院编号） stockOrgNo（物资库编号） goodsNo（物资编号）
	 * @return
	 */
	public boolean isExistGoods(Map<String,String> condition);
	
	/**
	 * 通过医院编号、物资库房部门编号、物资名称编号查询 物资库存（hospital 、stockOrgNo、goodsNo）
	 * @param condition
	 */
	public List<GoodsStOrgStockSet> getGoodsStOrgStockSet(Map<String, Object> condition);
}
